home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / include / bits / msq.h < prev    next >
C/C++ Source or Header  |  2009-10-07  |  3KB  |  84 lines

  1. /* Copyright (C) 1995, 1996, 1997, 2000, 2002 Free Software Foundation, Inc.
  2.    This file is part of the GNU C Library.
  3.  
  4.    The GNU C Library is free software; you can redistribute it and/or
  5.    modify it under the terms of the GNU Lesser General Public
  6.    License as published by the Free Software Foundation; either
  7.    version 2.1 of the License, or (at your option) any later version.
  8.  
  9.    The GNU C Library is distributed in the hope that it will be useful,
  10.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  12.    Lesser General Public License for more details.
  13.  
  14.    You should have received a copy of the GNU Lesser General Public
  15.    License along with the GNU C Library; if not, write to the Free
  16.    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  17.    02111-1307 USA.  */
  18.  
  19. #ifndef _SYS_MSG_H
  20. # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
  21. #endif
  22.  
  23. #include <bits/types.h>
  24. #include <bits/wordsize.h>
  25.  
  26. /* Define options for message queue functions.  */
  27. #define MSG_NOERROR    010000    /* no error if message is too big */
  28. #ifdef __USE_GNU
  29. # define MSG_EXCEPT    020000    /* recv any msg except of specified type */
  30. #endif
  31.  
  32. /* Types used in the structure definition.  */
  33. typedef unsigned long int msgqnum_t;
  34. typedef unsigned long int msglen_t;
  35.  
  36. /* Structure of record for one message inside the kernel.
  37.    The type `struct msg' is opaque.  */
  38. struct msqid_ds
  39. {
  40.   struct ipc_perm msg_perm;    /* structure describing operation permission */
  41.   __time_t msg_stime;        /* time of last msgsnd command */
  42. #if __WORDSIZE == 32
  43.   unsigned long int __unused1;
  44. #endif
  45.   __time_t msg_rtime;        /* time of last msgrcv command */
  46. #if __WORDSIZE == 32
  47.   unsigned long int __unused2;
  48. #endif
  49.   __time_t msg_ctime;        /* time of last change */
  50. #if __WORDSIZE == 32
  51.   unsigned long int __unused3;
  52. #endif
  53.   unsigned long int __msg_cbytes; /* current number of bytes on queue */
  54.   msgqnum_t msg_qnum;        /* number of messages currently on queue */
  55.   msglen_t msg_qbytes;        /* max number of bytes allowed on queue */
  56.   __pid_t msg_lspid;        /* pid of last msgsnd() */
  57.   __pid_t msg_lrpid;        /* pid of last msgrcv() */
  58.   unsigned long int __unused4;
  59.   unsigned long int __unused5;
  60. };
  61.  
  62. #ifdef __USE_MISC
  63.  
  64. # define msg_cbytes    __msg_cbytes
  65.  
  66. /* ipcs ctl commands */
  67. # define MSG_STAT 11
  68. # define MSG_INFO 12
  69.  
  70. /* buffer for msgctl calls IPC_INFO, MSG_INFO */
  71. struct msginfo
  72.   {
  73.     int msgpool;
  74.     int msgmap;
  75.     int msgmax;
  76.     int msgmnb;
  77.     int msgmni;
  78.     int msgssz;
  79.     int msgtql;
  80.     unsigned short int msgseg;
  81.   };
  82.  
  83. #endif /* __USE_MISC */
  84.